home *** CD-ROM | disk | FTP | other *** search
- 70 dbv ldx flagfc:tya:clc:adc flagfc:tay:sty flagfc
- 75 dbv1 lda dbuf,x:sta dbuf,y:dey:dex:bpl dbv1:dbv2 rts
- 90 addzei tya:clc:adc zeibas:sta zeibas:bcc az1:inc zeibas+1:az1 rts
- 100 getgbyt jsr chrget:jmp getbyt
- 103 ;flagfb >b7 =1 > @ nicht erlaubt
- 106 ; b6 =1 > @ muss
- 109 ; b5 =1 > drive muss
- 112 ; b4 =1 > name muss
- 115 ; b3 =1 > befehl 'disk'
- 118 ; b2 =1 > id erlaubt
- 121 ;--- b1 =1 > id vorhanden
- 124 ; b0 =x > drive
- 127 ea lda diskadr:sta devadr:eb sty flagfb
- 130 ldy #0:sty flagfd:sty flagfc:jsr chr(NULL)t
- 133 bne w1:jmp tex+2
- 136 w1 cmp #34:bne w3a
- 139 inc zeibas:bne nx1:inc zeibas+1
- 142 nx1 lda (zeibas),y:beq n1a
- 145 cmp #34:beq n1a:iny:cpy #20:bcc nx1:jmp strtl
- 148 n1a sty flagfd:tya:beq nx3:lda flagfb:ora #16:sta flagfb:dey
- 151 and #8:beq nx2:ldy #0:beq nx3aa
- 154 nx2 lda (zeibas),y:cmp #":":beq n2a:dey:bpl nx2:iny:beq nx3a+2
- 157 n2a iny:sty flagfc:n2b dey:bmi nx3a:lda (zeibas),y:cmp #"@":bne n2b
- 160 bit flagfb:bmi nx3a
- 163 lda flagfb:ora #64:sta flagfb
- 166 nx3a ldy flagfc:nx3aa ldx #0:nx3b cpy flagfd:beq nx3c:lda (zeibas),y
- 169 sta dbuf,x:iny:inx:bne nx3b:nx3c stx flagfc
- 172 nx3 lda flagfd:jsr addzei+1
- 175 w2 jsr chr(NULL)t:beq tex1:jsr chrget
- 178 w3 jsr chr(NULL)t:cmp #",":bne tex
- 181 jsr chrget:beq tex1:w3a cmp #"d":bne b1
- 184 jsr getgbyt:txa:cmp #2:bcs illq:lsr:lda flagfb:and #255-1:bcc *+4
- 187 ora #1:ora #32:sta flagfb:bne w3
- 190 b1 cmp #"u":bne b2:jsr getgbyt:stx devadr:jmp w3
- 193 b2 cmp #"i":bne tex:lda flagfb:and #4:beq synt:ldy #1:ora #6+16:sta flagfb
- 194 lda flagfb:ora #6:sta flagfb
- 195 ldx flagfc:lda #",":sta dbuf,x:inx:lda (zeibas),y:sta dbuf,x:inx
- 196 beq synt:iny:lda (zeibas),y:beq synt:sta dbuf,x:iny:jsr addzei
- 199 inx:stx flagfc:bne w3:tex1 beq tex
- 205 cmp #16:bcs illq:rts
- 208 illq ldx #14:.byt $2c
- 211 strtl ldx #23:.byt $2c
- 214 synt ldx #11
- 217 err =*:erout jmp $a437
- 220 tex ldx #0
- 223 lda flagfb:and #%01110000:beq end
- 226 tay:lda #8:bit flagfb:bne end
- 229 tya:and #%01100000:beq end
- 232 ldy #2:eor #%01100000:bne tx1:iny:tx1 lda flagfb:and #16
- 233 bne tx2:dey:tx2 jsr dbv:ldx #0:lda flagfb:asl:asl:bcc drive
- 238 tay:lda #"@":sta dbuf,x:inx:tya:drive asl:bcc name
- 239 lda flagfb:and #1:clc:adc #"0":sta dbuf,x:inx
- 241 name lda #":":sta dbuf,x
- 244 end ldx flagfc:cpx #22:bcs strtl
- 265 lda #0:sta dbuf,x
- 271 erts rts
- 274 s1 ldy #0:jmp synt
- 277 e12 ldy #64:.byt $2c:e12l ldy #0:jsr ea:jmp out
- 280 e23 ldy #128:jsr ea:jsr chr(NULL)t:cmp #$a4;to
- 283 bne s1
- 286 ne lda dbuf,x:sta dbuf+22,x:dex:bpl ne
- 289 jsr chrget:ldy #128+64:jsr eb:lda #"=":sta dbuf,x
- 292 ldy #0:inx:ne2 lda dbuf+22,y:sta dbuf,x:beq out:inx:iny:bne ne2
- 295 out txa:ldx #<dbuf:ldy #>dbuf:jmp $ffbd
- 600 ;:;******** befehle fuer disk-basic:;
- 601 bverify lda #1:.byt $2c
- 602 bload lda #0:sta $0a:jsr e12l
- 603 jsr chr(NULL)t:beq bldn:cmp #"p":beq bldn
- 604 jsr getint:ldx intadr:ldy intadr+1:lda #0
- 614 .byt $2c:bldn lda #1:sta secadr:lda $0a:jsr $ffd5:lda flag0a:beq bl00
- 615 jmp $e17e:bvend rts
- 617 bl00 lda status:and #$bf:beq bvend
- 618 ldx #$1d:blverr jmp $a437
- 619 dverify lda #1:.byt $2c
- 620 dload lda #0:sta flag0a:jsr e12l:lda #0:sta secadr
- 621 jmp $e16f
- 622 dsave jsr e12l
- 623 ds1 jmp $e159
- 625 msave jsr e12l:jsr getint
- 627 lda intadr:sta $c1:lda intadr+1:sta $c2:jsr getkint
- 629 ldx $14:ldy $15:lda #$c1:jmp $e15f
- 650 ;********
- 690 catalog pha:lda #3:sta flagfc:pla:cmp #"#":bne catnorm
- 692 jsr getgbyt:stx flagfc:jsr chr(NULL)t:beq catnorm:jsr prkomma
- 694 catnorm lda flagfc:pha:jsr e12:jsr clrch
- 695 pla:sta flagfc:lda #$60:sta secadr:lda #"$":ldy #0:sta ($bb),y
- 696 lda devadr:sta flagfe:jsr $f3d5:lda status:bne e09o:lda #14
- 698 ldx flagfc:ldy #0:sty lenfnam:jsr $ffba:jsr open
- 730 ldy #4:e10 jsr casetdev:e10a sty flagff
- 740 jsr iecin:ldy status:bne e09i
- 750 ldy flagff:dey:bne e10a
- 760 jsr iecin:sta intadr:jsr iecin:pha:jsr untalk:jsr catckout
- 765 lda #" ":jsr bsout:pla:ldx intadr:jsr adrout
- 770 lda #" ":jsr bsout:e11d jsr clrch:jsr casetdev:ldy #0
- 780 e11 sty flagff:ldy status:e09i bne e9i
- 785 jsr iecin:ldy flagff:sta dbuf,y:cmp #0:beq e11a1:iny:cpy #44:bcc e11
- 786 bcs e11a:e09o bne e9o
- 790 e11a1 lda #13:sta dbuf,y:iny:e11a sty flagff
- 791 jsr untalk:jsr catckout:ldy #255:e11b iny:cpy flagff:beq e11c
- 792 lda dbuf,y:jsr bsout:jmp e11b
- 793 e11c cpy #44:beq e11d
- 799 jsr clrch:jsr getstp:beq e9o
- 800 jsr $ffe4:beq e9a:cmp #" ":bne e9a
- 805 e9b jsr $ffe4:beq e9b
- 810 e9a ldy #2:jmp e10
- 815 e9i jsr untalk:jmp e9
- 820 e9o jsr clrch:e9 lda flagfe:sta devadr:lda #$60:sta secadr:jsr $f642
- 821 lda #14:jmp close
- 822 catckout ldx flagfc:cpx #3:beq catret
- 823 ldx lfn:jsr ckout:catret rts
- 830 casetdev lda flagfe:jsr talk:lda #$60:jmp sectalk
- 870 ;:;******** collect:;
- 880 collect jsr e12:lda #"v":ldy #0:sta ($bb),y
- 890 dbout =*:;jsr fdos :lda #0:sta status:lda devadr:jsr listen
- 892 lda #$6f:jsr $ff93:lda status:bpl dbo1:ldx #5:jmp $a437
- 893 dbo1 jmp $f3f6
- 920 ;:;******** header (disk formatieren):;
- 930 header lda #"n":pha:ldy #64+4:jsr e12l+2:jmp hesc
- 950 ;:;******** scratch:;
- 960 scratch lda #"s":pha:jsr e12:hesc pla:ldy #0:sta ($bb),y
- 970 sc1 bit $9d:bpl e21b:lda #<scstr:ldy #>scstr:jsr strout
- 980 jsr $e112:cmp #"y":bne e21a
- 990 jsr dbout:jsr getdsstr:lda #13:jsr bsout:jsr bsout
- 1000 ldy #0:e21 lda (stradr),y:jsr bsout
- 1010 iny:cpy strlen:bne e21
- 1020 e21a lda #13:jmp bsout:e21b rts
- 1030 ;:;******** ds$ generieren:;
- 1040 getdsstr lda #40:jsr getplace
- 1050 lda diskadr:jsr talk:lda #$6f:jsr sectalk
- 1060 ldy #0:e22 jsr iecin:cmp #13:beq ds01
- 1070 sta (stradr),y:iny:cpy #40:bne e22
- 1080 ds01 sty strlen:jmp untalk
- 1090 dsstr jsr getdsstr:jmp $b4ca
- 1100 dsfac jsr getdsstr:ldy #0:lda (stradr),y:and #15
- 1110 asl:sta intadr:asl:asl:adc intadr:sta intadr:iny:lda (stradr),y
- 1120 and #15:clc:adc intadr:tay:lda #0:jmp $b395
- 1280 ;:;******** rename:;
- 1290 rename lda #"r":.byt $2c
- 1300 copy lda #"c":.byt $2c
- 1310 backup lda #"d"
- 1320 pha:jsr e23:pla:ldy #0:sta ($bb),y:jmp dbout
- 1330 ;:;******** disk:;
- 1340 disk bcc disk1:ldy #8:jsr e12l+2
- 1342 jmp dbout
- 1344 disk1 jsr getbyt:stx diskadr:rts
- 1350 ;:;******** run:;
- 1360 run cmp #$22;hochkomma:beq e50
- 1365 lda flag:and #8:beq e50a:jmp $c003
- 1367 e50a jsr chr(NULL)t:jmp $a871
- 1370 e50 sei:ldy #5:sty $c6
- 1380 e52 lda runstr-1,y:sta $0276,y:dey:bne e52:cli:jmp dload
- 1390 ;:;******** append:;
- 1400 append jsr e12l:lda #0;load-flag:sta flag0a:sta secadr
- 1410 lda varstart:sec:sbc #2:tax:ldy varstart+1
- 1420 bcs e53:iny:e53 lda #0:jmp $e175
- 1430 ;:;******** merge:;
- 1440 merge jsr e12l
- 1450 jsr $f5af;"searching for name":lda #$60:sta secadr
- 1460 jsr $f3d5:lda devadr:jsr talk
- 1470 lda secadr:jsr sectalk:jsr mebytin
- 1490 jsr mebytin:bit $9d:bpl mv0302:lda #<merstr:ldy #>merstr:jsr strout
- 1501 mv0302 jsr mebytin:sta flagfd:jsr mebytin:ora flagfd:bne mv01
- 1502 jmp meend
- 1505 mv01 jsr mebytin:sta intadr:jsr mebytin:sta intadr+1
- 1510 lda #5:sta flagfc
- 1520 mebyte jsr mebytin:ldy flagfc:sta $01fb,y:cmp #0:beq meein
- 1530 iny:sty flagfc:cpy #85:bcc mebyte:bcs mefdata
- 1545 meein jsr $a613:lda varstart:sta $5a:clc:adc flagfc
- 1547 sta $58:tax
- 1550 lda varstart+1:sta $5b:adc #0:sta $59
- 1555 cmp basend+1:bcc me4:bne memem:cpx basend:bcs memem
- 1560 me4 jsr $a3bf:ldy #0:lda #1:sta (flag5f),y:iny:sta (flag5f),y:iny
- 1570 lda intadr:sta (flag5f),y:iny:lda intadr+1:sta (flag5f),y:iny
- 1575 ldx #5:me5 lda $01fb,x:sta (flag5f),y:iny:inx:cpx flagfc:bcc me5
- 1580 lda #0:sta (flag5f),y:jsr $a533:lda flag22:clc
- 1585 adc #2:sta varstart:lda flag22+1:adc #0:sta varstart+1
- 1590 jsr getstp:beq mebreak:jmp mv0302
- 1600 mefdata lda #24:.byt $2c
- 1601 enstrtl lda #$17:.byt $2c
- 1605 memem lda #16:.byt $2c
- 1610 mebreak lda #30:.byt $2c
- 1620 fnfound lda #4 :.byt $2c
- 1630 meend lda #128
- 1640 sta flagc8
- 1645 lda #255-64:jsr clrfla
- 1650 jsr untalk:jsr $f642:jsr $a533:jsr $a663:ldx flagc8:jmp $a437
- 1800 mebytin lda #$fd:and status:sta status
- 1821 me2 jsr iecin:tax:lda status:lsr:lsr:bcc meinrts:pla:pla:jmp mefdata
- 1822 meinrts txa:rts
- 2000 ;:;******** enter:;
- 2010 enter jsr e12l:enexe jsr $f5af;'searching for filename'
- 2032 lda #0:sta status:lda devadr:jsr listen:lda #$f2:jsr seclisten
- 2033 lda status:bpl enm1:jmp $f707
- 2034 enm1 lda lenfnam:beq enm2:ldy #0:enm3 lda (zeifnam),y:jsr iecout
- 2035 iny:cpy lenfnam:bne enm3:enm2 ldx #3:enm4 lda prgstr,x:jsr iecout
- 2036 dex:bpl enm4:jsr $f654
- 2050 lda devadr:sta flagc8:lda #64:jsr setfla
- 2060 bit $9d:bpl env0302:lda #<enstr:ldy #>enstr:jsr strout
- 2080 env0302 .if speed:lda #0:sta $0298
- 2081 jsr $ffe1
- 2082 beq enend1:lda #0:sta status:lda flagc8:sta devadr
- 2085 jsr talk:lda #$62:sta secadr:jsr sectalk
- 2090 lda status:bne enend1
- 2100 ldy #0:en1 jsr mebytin:cmp #13:beq enzend:sta $0200,y
- 2110 iny:cpy #89:bcc en1:jmp enstrtl
- 2130 enzend jsr untalk:lda #0:sta $0200,y:ldx #$ff
- 2140 ldy #1:lda status:bne enend2
- 2150 .if speed:lda #3:sta $0298
- 2160 jmp meret
- 2200 enend1 lda #0:sta $0200
- 2210 enend2 lda #255-64:jsr clrfla
- 2220 jsr untalk:lda flagc8:sta devadr:lda #$62:sta secadr
- 2225 lda #$76:ldy #$a3:jsr $ab1e
- 2230 jsr $f642:pla:pla:ldx #$ff:ldy #1:jmp meret
- 3000 type jsr e12l:lda $b7:bne type1
- 3010 ldx #8:jmp $a437
- 3020 type1 lda #0:sta $b9:jsr $f3d5
- 3030 lda status:bne typee
- 3040 lda $ba:jsr talk:lda #$f0:jsr sectalk
- 3050 type2 jsr $ee13:ldx status:jsr $ffd2
- 3060 txa:beq type2
- 3070 jsr unlisten:jsr $f646:typee rts
-